import {
	ID,
	KEY,
	BASE_URL
} from '../config/index.js'
module.exports = (vm) => {
	// 初始化请求配置
	// 参考文件  https://www.uviewui.com/js/http.html
	uni.$u.http.setConfig((config) => {
		/* config 为默认全局配置*/
		config.baseURL = BASE_URL; /* 根域名 */
		config.header = {//header也可以放在请求拦截器中
			"X-LC-Id": ID,
			"X-LC-Key": KEY,
			"Content-Type": "application/json"
		}
		return config
	})

	// 请求拦截
	uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
		// 演示custom 用处
		// if (config.custom.auth) {
		//   config.header.token = 'token'
		// }
		// if (config.custom.loading) {
		//  uni.showLoading()
		// }
		// 演示
		// if (!token) { // 如果token不存在，return Promise.reject(config) 会取消本次请求
		// 	return Promise.reject(config)
		// }
		return config
	}, config => { // 可使用async await 做异步操作
		return Promise.reject(config)
	})

	// 响应拦截
	uni.$u.http.interceptors.response.use((response) => {
		/* 对响应成功做点什么 可使用async await 做异步操作*/
		// const data = response.data

		// // 自定义参数
		// const custom = response.config?.custom
		// if (data.code !== 200) { 
		// 	// 如果没有显式定义custom的toast参数为false的话，默认对报错进行toast弹出提示
		// 	if (custom.toast !== false) {
		// 		uni.$u.toast(data.message)
		// 	}

		// 	// 如果需要catch返回，则进行reject
		// 	if (custom?.catch) {
		// 		return Promise.reject(data)
		// 	} else {
		// 		// 否则返回一个pending中的promise，请求不会进入catch中
		// 		return new Promise(() => { })
		// 	}
		// }
		// return data.data === undefined ? {} : data.data
		console.log('响应拦截器', response);
		if (response.statusCode === 200) {
			uni.showToast({
				title: '操作成功',
				icon: 'none'
			})
		}
		return response.data
	}, (response) => {
		// 对响应错误做点什么 （statusCode !== 200）
		return Promise.reject(response)
	})
}
